<?php
 /**
  * Clase Math
  * Requiere LIGA 2.0 o superior
  * Autor: Ing. Oscar Galileo García García
  * Creación: 17 de Abril del 2011
  * Última modificación: 22 de Abril del 2011
  */
 class Formula {
    private function __construct() {
        // Sólo se usarán los métodos así: Math::suma($obj,$col);
    }
    // Obtiene la suma de una columna en un objeto determinado (sólo si es una columna numérica)
    public static function suma($liga,$col) {
        $datos = $liga->columna($col);
        if($liga->col_numerica($col)) {
            return array_sum($datos);
        } else {
            return "La columna '$col' no es numérica";
        }
    }
    // Obtiene el producto de una columna en un objeto determinado (sólo si es una columna numérica)
    public static function prod($liga,$col) {
        $datos = $liga->columna($col);
        if($liga->col_numerica($col)) {
            return array_product($datos);
        } else {
            return "La columna '$col' no es numérica";
        }
    }
    // Obtiene el promedio de una columna en un objeto determinado (sólo si es una columna numérica)
    public static function prom($liga,$col) {
        $datos = $liga->columna($col);
        if($liga->col_numerica($col)) {
            return array_sum($datos)/count($datos);
        } else {
            return "La columnas $col no es numérica";
        }
    }
    // Obtiene el número mayor de una columna en un objeto determinado (sólo si es una columna numérica)
    public static function max($liga,$col) {
        $datos = $liga->columna($col);
        if($liga->col_numerica($col)) {
            return max($datos);
        } else {
            return "La columnas $col no es numérica";
        }
    }
    // Obtiene el número menor de una columna en un objeto determinado (sólo si es una columna numérica)
    public static function min($liga,$col) {
        $datos = $liga->columna($col);
        if($liga->col_numerica($col)) {
            return min($datos);
        } else {
            return "La columnas $col no es numérica";
        }
    }
 }
?>